import request from '@/utils/request'

/**
 * 获取收藏列表
 * @param params 查询参数
 */
export function getFavoriteList(params = {}) {
  return request({
    url: '/favorites',
    method: 'get',
    params
  })
}

/**
 * 添加商品到收藏
 * @param productId 商品ID
 */
export function addToFavorite(productId) {
  return request({
    url: '/favorites/add',
    method: 'post',
    data: { productId }
  })
}

/**
 * 取消收藏商品
 * @param productId 商品ID
 */
export function removeFromFavorite(productId) {
  return request({
    url: `/favorites/${productId}`,
    method: 'delete'
  })
}

/**
 * 切换商品收藏状态
 * @param productId 商品ID
 */
export function toggleFavorite(productId) {
  return request({
    url: '/favorites/toggle',
    method: 'post',
    data: { productId }
  })
}

/**
 * 检查商品是否已收藏
 * @param productId 商品ID
 */
export function checkFavorite(productId) {
  return request({
    url: `/favorites/check/${productId}`,
    method: 'get'
  })
}

/**
 * 获取收藏数量
 */
export function getFavoriteCount() {
  return request({
    url: '/favorites/count',
    method: 'get'
  })
}

/**
 * 批量取消收藏
 * @param productIds 商品ID列表
 */
export function batchRemoveFavorites(productIds) {
  return request({
    url: '/favorites/batch',
    method: 'delete',
    data: productIds
  })
}

/**
 * 清空所有收藏
 */
export function clearAllFavorites() {
  return request({
    url: '/favorites/clear',
    method: 'delete'
  })
}
